함수 선언식과 표현식의 차이점
❓질문
함수 선언식과 함수 표현식의 차이점에 대해서 설명해주세요.
💡 조사하기전 내가 알고 있던 내용
함수 선언식은
함수()
function 함수(){
로직
}
이런 형태로 작성을 하며 이 방식은 호이스팅되어 선언부 위에서도 동작이 된다라는 점이 있습니다.
이는 런타임 전에 할당 되기 때문입니다.
함수 표현식은 보통 변수에 담아서 쓰는 방식으로 작성이 되는데
const 함수 = function(){
로직
}
혹은 화살표 함수의 형태로 작성이 됩니다
const
나 let
을 함께 사용하며 작성을 하다보니 호이스팅 되어도 ReferenceError
가 발생하게 됩니다. 이는 런타임 도중라인에 도달되어야 할당 되기 때문입니다
🏫 정리한 내용
위 내용으로 차이점을 설명하기에 충분할거같습니다
여담으로 var
로 함수표현식을 작성하고 호출하게 된다면 Type Error
가 발생한다고 합니다.